package Modelo;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Vector;
public class Seccion { 
private String NroSeccion;
public Profesor Profesor=new Profesor();
private Vector<Alumno> Alumnos= new Vector<Alumno>();
BufferedReader lector = new BufferedReader(new InputStreamReader(System.in));
public void registrarSeccion(String NroSec)throws IOException {	
setNroSeccion(NroSec);	 
};
public void asignarProfesor(Profesor Prof) throws IOException{   
setProfesor(Prof);
};
public void inscribirEstudiante(Alumno Alumno)throws IOException {
Alumnos.addElement(Alumno);		
};
public boolean buscar(String Cedula){
Alumno Alumno;
boolean encontrado=false;
for(int i=0;i<Alumnos.size();i++){
   Alumno= Alumnos.elementAt(i);
   String ced=Alumno.getCed();
   if(Cedula.equals(ced)){
      encontrado=true;
	  break;
		                 }
		                        }
return encontrado;
};
public int buscarPosicion(String Cedula){
int pos;
Alumno Alumno;
for(pos=0;pos<Alumnos.size();pos++){
   Alumno= Alumnos.elementAt(pos);
   String ced=Alumno.getCed();
      if(Cedula.equals(ced)){
	     break;
		                     }
		                           }
return pos;
};
public void retirarEstudiante(int posicion) throws IOException{
Alumnos.removeElementAt(posicion);
};
public Alumno obtenerEstudiante(String Cedula) throws IOException{
Alumno Alumno=new Alumno();
for(int i=0;i<Alumnos.size();i++){
   Alumno= Alumnos.elementAt(i);
   String ced=Alumno.getCed();
   if(Cedula.equals(ced)){
      break;
		                 }
		                         }
return Alumno;
};
public void aplicarEvaluaciones(Vector<Alumno> Alumnos){
Alumno Alumno;
for(int i=0;i<Alumnos.size();i++){
   Alumno=Alumnos.elementAt(i);
   Alumno.presentarEvaluacion();	
		                         }
for(int i=0;i<Alumnos.size();i++){
   Alumno=Alumnos.elementAt(i);
   Profesor.evaluarEstudiante(Alumno);	
		}		
	}; 	
public int compare(Object o1, Object o2) {
return o1.toString().compareTo(o2.toString());
}
public  Vector<Alumno> ordenarEstudiantesCedula(){
Alumno Alumno1;
Alumno Alumno2;
String ced1,ced2;
int resp;
for(int i=0;i<Alumnos.size();i++){
   Alumno1=Alumnos.elementAt(i);
   ced1=Alumno1.getCed();
   for(int k=i+1;k < Alumnos.size();k++){
      Alumno2=Alumnos.elementAt(k);
	  ced2=Alumno2.getCed();
	  resp=compare(ced1,ced2);
	  if(resp > 0){
	     Alumnos.setElementAt(Alumno2,i);
		 Alumnos.setElementAt(Alumno1,k);
		 Alumno1=Alumnos.elementAt(i);
		 ced1=Alumno1.getCed();
				  }
			                            }
		                         }
return Alumnos;		
	};
public Vector<Alumno>  ordenarEstudiantesNotaF(Vector<Alumno> Alumnos){
Alumno Alumno1=new Alumno();	
Alumno Alumno2=new Alumno();
double nota1,nota2;
for(int i=0;i<Alumnos.size();i++){
   Alumno1=Alumnos.elementAt(i);
   nota1=Alumno1.getNfinal();
   for(int k=i+1;k < Alumnos.size();k++){
      Alumno2= Alumnos.elementAt(k);
	  nota2=Alumno2.getNfinal();
	  if(nota2 > nota1){
	     Alumnos.setElementAt(Alumno2,i);
		 Alumnos.setElementAt(Alumno1,k);
		 Alumno1=Alumnos.elementAt(i);
		 nota1=Alumno1.getNfinal();
			            }		
	                                    }
	                              }
return Alumnos;
};	
public Vector<Alumno> estudiantesAprobados(Vector<Alumno> Alumnos) throws FileNotFoundException{
Vector<Alumno> aprobados= new Vector<Alumno>();
Alumno Alumno;
char est;
for(int k=0;k < Alumnos.size();k++){
   Alumno= Alumnos.elementAt(k);
   est=Alumno.getEstado();
   if(est=='1')
      aprobados.add(Alumno);
	                               }
return aprobados;
};
public Vector<Alumno> estudiantesAplazados(Vector<Alumno> Alumnos) throws FileNotFoundException{
Vector<Alumno> reprobados=new Vector<Alumno>();
Alumno Alumno;
char est;
for(int k=0;k < Alumnos.size();k++){
   Alumno= Alumnos.elementAt(k);
   est=Alumno.getEstado();
   if(est=='2')
      reprobados.add(Alumno);
	                               }
return reprobados;	
};
public double promedioNotas(Vector<Alumno> Alumnos){
double Promedio=0,acu=0;
Alumno Alumno=new Alumno();
for(int k=0;k < Alumnos.size();k++){
   Alumno=Alumnos.elementAt(k);
   acu = acu + Alumno.getNfinal();
	                               }
Promedio=acu/Alumnos.size();
return Promedio;	
};	
public String getNroSeccion() {
return NroSeccion;
}
public void setNroSeccion(String nroSeccion) {
NroSeccion = nroSeccion;
}
public Profesor getProfesor() {
return Profesor;
}
public void setProfesor(Profesor profesor) {
Profesor = profesor;
}
public Vector<Alumno> getAlumnos() {
return Alumnos;
}
public void setAlumnos(Vector<Alumno> alumnos) {
Alumnos = alumnos;
}
}